*{
    margin: 0;
    padding: 0;
}
body{
    background-color: #111;
}
.box{
    width: 200px;
    height: 200px;
    background: url('img/bg.jpeg') no-repeat center;
    background-size: cover;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%)
}
.box::before, .box::after{
    content: '';
    border: 2px solid #2ecc71;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: -15px; 
    /* clip: rect(top, rgiht, bottom, left); */
    /* clip: rect(0px, 230px, 2px, 0px);
    clip: rect(0px, 2px, 230px, 0px);
    clip: rect(228px, 230px, 230px, 0px); */
    /* clip: rect(0px, 230px, 230px, 228px); */
    animation: borderClip 4s linear infinite;
}
.box::after{
    animation-delay: -2s;
}
.box:hover::before, .box:hover::after{
    animation-play-state: paused;
}
@keyframes borderClip{
    0%, 100%{
        clip: rect(0px, 230px, 2px, 0px);
    }
    25%{
        clip: rect(0px, 2px, 230px, 0px);
    }
    50%{
        clip: rect(228px, 230px, 230px, 0px);
    }
    75%{
        clip: rect(0px, 230px, 230px, 228px);
    }
}